/*
 * Copyright (C) 2016  Nicola Spanti (RyDroid) <dev@nicola-spanti.info>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */


#ifndef PLANET_WARS_2D_RT_CORE_MODEL_UNIVERSE_GENERATOR_H
#define PLANET_WARS_2D_RT_CORE_MODEL_UNIVERSE_GENERATOR_H


#include "PlanetWars2dRT-core/specific/model/universe_essential.h"


EXTERN_C_BEGIN


void
universe_add_random_planets_of_player(struct universe_t* a_universe,
				      unsigned short nb,
				      unsigned char player_index);
void
universe_add_random_neutral_planets(struct universe_t* a_universe,
				    unsigned short nb);


void
universe_give_rand_neutral_planet_to_player(struct universe_t* a_universe,
					    unsigned char player_index);

void
universe_give_rand_neutral_planet_to_rand_true_player(struct universe_t* a_universe,
						      unsigned char nb_players);

void
universe_give_neutral_planet_to_true_players(struct universe_t* a_universe,
					     unsigned char nb_players);


struct universe_t
universe_generate_very_simple(size_2d_uint size,
			      unsigned short nb_planets);

struct universe_t
universe_generate_very_simple_with_a_planet_per_player(size_2d_uint size,
						       unsigned short nb_planets,
						       unsigned char nb_players);


EXTERN_C_END


#endif
